Blog

Friday Facts #18

Posted by Tomas on 2014-01-24

Hello, today the Factorio Friday Facts turn 18. That is considered an age of maturity in many countries. So the glass of Jagermeister on my desk is completely justified :) The time here in Prague feels just like whooshing around us faster and faster with the end of January approaching rapidly. That was the original estimate for the release of 0.9 but now it seems that it will take a week or two more. The usual "everything takes longer than expected" has applied this time as well. The current development version has placeholders for some new entities (like a plain rectangle box saying "oil refinery" or another one with "chemical plant") and we really want to make proper graphics for these and deliver the basics of new oil content as a whole package. Recently we got a bug report claiming that the game is too slow. The guy who posted it was right, the game was running well under 60fps. In our defence it needs to be added that his factory was pretty monstrous. It was actually the biggest one we have seen by far. Just to get an idea, his factory had 9000 solar panels, 15 000 laser turrets and thousands of logistic robots. So kovarex took it as a challenge to squeeze as much performance from the engine as possible taking this save as a reference. He has been working on it for the past couple of days. The most significant optimizations he made are: Efficient dispatch of pending logistic robots. This was probably the cause of the biggest slowdown in the given save. Wake-on-demand mechanism for inserters. Until now the inserters always asked every tick the objects in front of / behind itself whether they should transfer anything. Now, instead they put themselves to sleep and the object wakes them up when its state changes (that means there is a chance a transfer will be required). Improved cache locality for the electric energy network. The result: game update dropped from roughly 30 milliseconds per 1 update to about 10 milliseconds (and there is more to come). Of course not everybody will get this amount of performance improvement (the optimizations are aiming at the game update for big factories). But in general this batch of improvements pushes the bar for the size of the factory further up. The work on the oil industry has entered the last phase. The fluid and recipe mechanisms as well as new entities are ready and now it is all about adding the actual content. I have been studying the oil refining process quite a bit recently and also I took this opportunity to refresh some bits from my high school chemistry curriculum. The way it shapes now the oil industry will be a middle to late game resource. Its usage will start somewhere between the green and blue science pack and its products will cover a variety of areas (fuel, plastics, lubricants, explosives, etc.). There has been quite some discussion about the oil industry on the forums. If you are interested and want to contribute your opinion you can do so in this thread for instance. Kuba and Albert have been working together a bit on the integration of the new doo-dads into the map generator. The goal is to approach the scenery compositions shown in the previous posts . Though that is difficult (because those compositions are hand made and imho very good) the doo-dads should greatly improve the current flatness of the landscape anyway. On top of this Kuba has been busy with a neat feature when the game will natively treat zip archives as directories (so the saves / mods can be zip packages). And of course Albert's table is full of "oily stuff" - now comes the interesting part - the oil mining drill, the oil refinery and the chemical plant. Today's picture is a glimpse into the internals of Factorio. The screenshot shows a diagram of entities' (objects on the map) class inheritance structure generated by doxygen. If you feel like expressing your opinion regarding anything above then go ahead and do so on our forum.

Friday Facts #17

Posted by Tomas on 2014-01-17

Hello there, the 17th of January brings you the 17th edition of the Friday Facts. Recently, even without our active participation the game has been doing quite well. There are plenty of new videos on the youtube and the forum has also been buzzing with activity. One of our fans put it as follows: "Factorio is going places". Well, we certainly hope he is right :). Anyway let's get down to business. The past week has been spent mostly by work on the new functionality for the 0.9. The blueprints and the oil industry. Both of these are quite large tasks so to finish them completely does take a lot of time. Though the core functionality for both is finished and we are now sort of tweaking the details. I have experimented a bit with some new simple pipe vs. assembler setups and it was quite refreshing and fun. We are really curious how this turns out. The oil industry will result in quite a few new recipes and while we are at it we might go and rebalance the recipes overall a bit. There are things we know for sure should be fixed (for instance the green science pack being too cheap and close to the red one) and there are things we want to experiment with a little bit (like introducing a more complex intermediate products - small engine, navigation system, etc.). We haven't mentioned our new trailer for a while. The thing is that we struggled for long to find someone who would be able to compose the music for the video. We even mentioned that in one of the past Friday Facts. After that post we actually got contacted by a player who bought the game and was following its development news. His name is Daniel James Taylor and he is an awesome (now we know that :)) composer from the United Kingdom. Check out his website if you are interested in more details / his music samples. We agreed on the cooperation and he went and composed a great piece of music fitting our new trailer very well. We are now discussing with Daniel further cooperation regarding the sound effects and ambient music for the game. With the music finished, the biggest bulk of the work for the trailer has been done. The last step is to integrate the new graphics (terrain, doo-dads, etc.) into the trailer and polish it to perfection :) This will most probably happen after the 0.9, but we are getting there. Since the "job advertisement" worked so well last time for the music, we have another one :). It is very apparent to anyone opening the game that the items, gui icons, technology pictures, etc. are a mess. So we are looking for a graphic designer to help us out here. Albert's todo list is long enough already and this job is a lot of work. We would prefer someone from the Czech Republic or the vicinity (for easier communication), but the music experience has proved that a quality cooperation can be done based solely on electronic communication as well. Let's see, maybe we will get lucky twice :) Albert has been "in the oil industry state" for a while. We found out that the current pipes are not fitting the art direction very well. Therefore we decided to take a step back and redo the pipes before anything else. The pipes are the base for the other machines so it certainly needs to be done. It does slow the things now a bit, but as the wise man once said: "If you want to run fast, you need to tie your laces well. Or go barefoot." So below is a composition preview of the new pipes and storage tanks that will be used for holding large amounts of fluids. If you feel you have something to say there is a post for that on our forum.

Friday Facts #16

Posted by Tomas on 2014-01-10

Good evening Factorians, today we had a presentation about the game at one of the universities here in Prague for the subject called "Video game development". It was focused on what is it like to develop an indie game. So yesterday we spent some time reflecting the past year and a half to come up with topics to talk about. We were thinking a lot about the period about a year ago before the Indiegogo campaign started, when the game was completely unknown to the public and we were close to burning out. The positive finding wat that as opposed to that period the work is now much less stressful and generally enjoyable. Maybe we (and people in general) should think about our down moments more often to better appreciate what we have ... Last Friday Facts promised a stable 0.8 release in the beginning of this week. Well, that was a false promise because couple of more bugs have been found that resulted in the new record for number of bugfix releases. Now we have the 0.8.8 in the experimental stage. If there are no serious issues found this will be made stable during the weekend. Having so many bugfix releases is rather annoying (and we plan to improve here by starting with automated testing) but it doesn't slow us down in the regular development. We have multiple development branches and the work on the 0.9 has been going for a while in the master branch, while the bugfixes are collected in the current release branch (the 0.8.x) and then merged back into the master. Talking about the 0.9, the work has been progressing well. Quite some internal rework of concepts is required for the oil industry and fluids in general. However, yesterday we already had an assembling machine that makes a recipe from some items and water supplied by the pipe. For this to work the recipe mechanism has been generalized and in the end (not yet done) following will be possible: The recipe ingredient can be a fluid. The recipe can have multiple results (both items and fluids). The results of the recipe can be randomized (there will be a probability of getting the result and a min - max range for the amount of the result). There might not be much more fluid content aside from the oil (and its variations) in the 0.9, however the mechanisms will be there for the modders to play with and take advantage of them. And we are curious what they come up with:) Kovarex has been working on the native blueprints for some time and he has the core functionality more or less finished. Of course that is just a small portion of the total work required (polishing, bugfixing, integration with other concepts, etc.) but it is something that can already be played with in the 0.9 branch. And it is actually quite fun to play with. The system is relatively straightforward now: You make the blueprint item. You select what to store in it (you get the blueprint preview on the item afterwards). You place it and the construction robots build it. You can check it out on the mini picture series below, where blueprints have been used to build the standard furnace line. If you would like to share your thoughts or ideas about this post, you can do so on our forum.

Friday Facts #15

Posted by Tomas on 2014-01-03

Happy new year to everyone! We have spent the New Year's Eve with friends in our appartment / office on a last-minute improvized party. The entertainment was provided by the usual elements - food, drinks, chatting and board games. The traditional fireworks all over the Prague kickstarted the 2014, which is going to be a crucial year for Factorio. The main points from the 2014 battle plan are: Get on the Steam. Get the multiplayer done. Get some quality holidays:). After some relaxed time during the Christmas we are back to full speed development. There will be a stable release of the 0.8 in the beginning of the next week. The periods necessary for release stabilization has been getting longer and longer. That was one of the reasons we decided to dedicate more time in the future to the automated testing. You can read more on this topic in our latest random ramblings. Past week has been spent by working on the new features for the 0.9. Mainly the oil industry and blueprints. Both are still in the process of development so I will go into the functional details later, after they are more or less stabilized. You can also read our plans regarding the functionality in that random ramblings post. One thing is clear already. The 0.9 is a very ambitious release and if all goes well it will be one of our most content rich releases (if not the most content rich). After the 0.9 we plan to start working on the multiplayer which might be a long period with little other updates. Therefore we plan to get a lot done before that. In the meantime, Albert has finished with a first set of doo-dads. Below is a composition with some new shipwrecks. Actually the current shipwreck sprite in the first level was cut (and adjusted) from one of our theme art pictures (can you find it:)?). It is time for this one to be replaced. There is still much more that could be (and will be) done for the doo-dads, but now we need to move on to making graphics for the new "oil related" machines ... Comment thread is not hiding anywhere. It is right there on our forum.

Friday Facts #14

Posted by Tomas on 2013-12-27

Hi there, past week has not been the most productive one in the Factorio history. The Christmas was a good opportunity to take couple of days off, relax and spend some time with the family. In the meantime some more bugs have popped up in the 0.8.x resulting in the release of the 0.8.4, the current shot at the stable release. The end of the year is a good time to look backward and do some balancing. Many things have happened in the 2013 but for me, one of them clearly stands out. And that is the change in sort of a general feeling from the project. What I mean is following. In the beginning of the year we didn't have a plan, we didn't have an artistic direction, we didn't have any income, we were just two guys working over-full-time from the living room on kind of a hobby project. I remember that those were often desperate times filled with insecurity about the future. The comparison to now is staggering. We received the trust in the Indiegogo campaign, 5000 people (almost there) have bought the game, there is a great community at our forums, we have a clear roadmap and we are working on it, the looks of the game have improved drastically and we now have an actual artistic direction to follow, and much more... All in all we overcame many obstacles, some of them seemed impossible a year ago. Of course it hasn't been all smooth ride, but the despair and uncertainty are gone. Yes, often there is the stress (especially during the sprint before the release) or anxiety but, I think that is unavoidable and it often actually pushes us forward. Overall Factorio now feels to me like a healthy project with clear direction rather than a very uncertain experiment it was a year ago. We all have worked hard to achieve this but a big thanks goes also to our fans, without you we wouldn't succeed in the Indiegogo, we wouldn't have the funds to continue the development later on when things started to drag and also we wouldn't have all the positive feedback that have kept us going. Thank you! Now, for a more humorous look on what the development of Factorio is like check out this series of gifs by Kovarex on our forums. Albert has worked a lot on the doo-dads and some good results start to come out. Below is the preview of the desert with new trees, rocks and plants. The name of the image is "The desert hunt". Just to make sure, it is an artificial composition, not a screenshot from the game:). Next on the list are doo-dads for other terrains and then ship wrecks, destroyed machines, etc. As always check out the post on our forum for the comments.

Merry Christmas

Posted by Tomas on 2013-12-24

Hello everyone, Just a very short post. We, the Factorio team, would like to wish you all very Merry Christmas. Take the opportunity to have some rest and recharge your energy (we certainly will). We have also prepared a small present for you. It is a never-before publicly released prototype of the game from the autumn 2012, so it is more than a year old. It is from so long ago that the game was not yet called Factorio. At that time we provisionally called it Energycraft. There are only the win32 and win64 binaries available (you can use emulator on other systems). Bundled with the game are 2 saves from that time, so you can have a look at some existing factories. Playing that version even for couple of minutes brings back a lot of nostalgia:) Merry Christmas everyone! If you wish to leave some comments you can do so on our forums.

Friday Facts #13

Posted by Tomas on 2013-12-20

Hello, another Friday means another update on what is happening here in the Factorio central in Prague. It doesn't really feel like the Christmas are actually around the corner. There is no snow (just cold) and the shopping spree / Christmas tree hunt doesn't really affect us that much:) Therefore the only clear signal that the year is coming to an end has been the Christmas concert we attended with Kovarex. The stabilization of the 0.8 has been our main topic for the past week. We have found and fixed many bugs ranging from little annoyances to serious game-crashing or save-corrupting beasts. The 0.8.1 contained a magical number of 42 bugfixes, but unfortunately some of the fixes brought in new bugs (this happens so often that it became a programming folklore). Therefore we made another bugfix release - the 0.8.2 which has been published today and so far it has been looking good. The way I put it sometimes, the bugfixing probably sounds like a boring / tedious work. Well there is not that much creativity involved, but it can get really interesting. It is like solving a puzzle or a small criminal case of your own. In the beginning you only have the problem. Then you are looking around, noticing small odities and other clues. If you need, you can use the debugger or debugging prints to get a glimpse of what is happening behind the curtains. You need to think a lot and picture how the different parts of the code interact and what could be going on. You make a hypothesis, test it and often ... find nothing. But in the end you get this AHAAA moment when everything becomes clear and the source of the problem is revealed. Actually fixing the bug is usually the simple part, once you have traced its origin. The AHAAA moment feels really good, it is like figuring out a riddle or solving a tricky math problem. Kuba started working on the biomes for the 0.9. The model he is using is taking into account two semi-independent variables: the temperature and the humidity. The noise of temperature and humidity is generated over the map, assigning a specific combination of values to every tile. The placement of terrain and doo-dads (trees, rocks, fauna, etc.) are driven by these two variables. For instance, the definition of plain green tree would say that it has the peak at humidity of 0.5 and temperature of 17 degrees. The probability distribution is then formed around this peak to determine whether the tree should be placed on a given tile (based on the tile's temperature and humidity values). In the end, based on these definitions, the different biomes should emerge (we are already curious if they do:)). Below there is an image which demonstrates the relationship between biomes and humidity / temperature. Albert is at the moment working on the doo-dads (new trees, rocks, plants, etc.) to give the environment a realistic feel. We have collected quite some feedback on the new logo direction in the past week. Personally, the biggest surprise to me has been that a lot of people would prefer the current logo to the old one. We still believe in the new logo and we will use the feedback from the forums and emails to improve it (experimenting with the color, increased readability, the wheel shape, etc.). The second post picture is called "The giant and the machines". It demonstrates the scale functionality of the engine that can be used to draw scaled pictures on the fly rather than scaling them first. This way the picture uses both less space on the drive (some mods are already bigger than the vanilla game:)) and less video memory. It was really funny to see the giant player walking around the tiny machines:) As always you can let us know what you think in the dedicated post on our forum.

Friday Facts #12

Posted by Tomas on 2013-12-14

Hello everyone, even though it is not Friday anymore here we come with yet another regular update. We didn't want to make a blogpost on Friday the 13th because for sure something would go wrong. And also I am on a skiing trip in Austria and I was too tired yesterday to do anything, after all the day going downhills. So the 0.8.0 has been succesfully released last Friday. We finished at the same time when first guests for the party started coming. We just crossed our fingers, pressed the release button (maybe we should have a real, big, red "release" button) and went off to drink beer and talk to people. The cake (see the picture in the last post) was delicious:) Back to the release - there were small issues, but nothing really major ("Pump cannot be built" kind of thing). We have already fixed most of the reported issues for the 0.8.1, which will happen in the beginning of the next week. We haven't worked on anything major aside from the issues. We took the time to relax after the intensive release sprint (says the guy who has been skiing all day long:). Kovarex was playing some games (including classics like Dune 2000) looking for inspiration. There was also a long conversation about how the new industry with oil and chemicals should work. Interesting things ahead. Originally we wanted to start the Steam Greenlight campaign before the Christmas. Now it is clear that this will not happen. The reason is that the music for the new trailer is not yet ready. The cooperation with the guy we hired for the music hasn't brought the expected result. So we are back where we started. Recently, we found a composer in Prague, who looks like a very good fit for the job, but he will not have time until after Christmas. At least Albert will have more time to work on doodads for the game (and the trailer) - things like trees, rocks, etc. Albert also took the opportunity to work on something completely different for a while and he came up with a proposal for the new Factorio logo. The old (current) logo has been done by me and then face-lifted by another artist. But still it looks painfully amateurish. The new logo doesn't have that problem:) Together with the logo Albert worked on the new forum style, this will be deployed sometimes next week. So here is the thing. We actually have two proposals for the logo. And we would appreciate some help and opinions for deciding which one to use. You can see the proposals below. They are shown on the potential loading screen of the game. We do have our preference but will not say which one that is to avoid influencing the outcome. They both work as links for larger versions. There are polls for you to vote and comment in the post on our forums, so go there and let us know what you think.

Friday Facts #11

Posted by Tomas on 2013-12-06

Hi there, after a hectical sprint, the 0.8.0 release is done. We have continuously reported on the progress, so the content of the release won't be a big surprise. Still, you can checkout the release notes on our forums. And if you are brave enough you can even try it out. The thing is that considering the circumstances the release will be "very" experimental. We have fixed all the major errors and crashes we came acrros. But still there were plenty of changes under the hood in non-trivial areas (namely the logistic system) so there are a lot of potential places for error. Just a reminder, you need to set "Enable experimental updates" in the "Other settings" for the builtin updater to update your version to 0.8.0. After a major release we usually take a day or two off. This time it will be no exception. Moreover it was Kovarex's birthday yesterday, so today in the evening we will have a party in our place. After the headaches are gone, the place is clean again and we recharge our batteries, we will be after the (supposedly found) bugs in 0.8 and planning the 0.9. It is kind of a never ending story:). The last bigger feature we worked on for the 0.8 was the Roboport. That is the "home" for the logistic and construction robots, where they can charge, station and which navigates them on the map. This neatly solves some issues there were with the logistic system before: Balancing - Roboport requires quite some energy to charge the robots. So the Logistic Robots will be less overpowered than they have been. Stationing - In the past robots without orders kept hanging at the place where they stopped. This was annoying and even caused robots to become a target for enemies after they delivered stuff to the player's inventory. Now every robot that has nothing to do goes to the roboport to station there. Area Separation - Before, all the logistic robots could fly all over the map. From the base to the expansion if necessary. Following the player fighting the enemy bases, etc. This was also less than desirable. Now the connections between the roboports define separate logistic networks which can't be mixed. This way, small independent systems can be setup in the expansions and one large network in the main base for instance. And on top of all that the roboports look really cool:D Albert happily took the break from the terrain and made a great machine in a short amount of time. You can checkout the "making of" animation below. Some of the instructional pictures in the demo were getting really outdated. So we replaced them with setups with the current graphics. Below is a side-by-side comparison for the instruction on how to use inserters from some months ago and from now. The last picture is the courtesy to Kovarex's grandmother, who made this wonderful cake for his birthday. The tradition is the commenting thread on our forum.

Friday Facts #10

Posted by Kovarex on 2013-11-29

Hello, the regular dose of news from the developement of Factorio is here, I (Kovarex) wrote it today, and you can clearly see, that I like structured form of information :) Factorio is a continuous jam session. Albert had this observation yesterday and it is very precise description of our development. In the start I had no idea what will the game be like, I had no plans about the visual styles and proportions of the project that was just a hobby, an experiment. The rails were the first graphical assignment for Albert. I told him to just "do the rails" like it was some obvious one way street task. I didn't give him any clues about the style. Should it be cartoonish? Should it be realistic? Should it look modern, cyberpunk or 19th century like? We didn't know, we were searching for the direction on the fly. Any manager would probably say this is a bad thing, that we need a roadmap for the whole process from the start to the final release with all the contents, features and graphics planned ahead including cost estimates. I personally think, that the freedom of the jam (agile) way of development that allows us to react is the best for Factorio. We are inventing and extending the best ideas on the run, ideas that would never be visible in the start. The 0.8 We have less than a week for the preparation of the 0.8, we integrated all the new terrain tilesets to the game, Tomas is now working on the roboports, and construction robots can reconstruct destroyed buildings. We have few days to add some smaller features before we start bugfixing and preparing for the release. The new terrain The main graphical task of the 0.8 is almost finished. You can judge for yourself: The roboport The roboport is the control building for the logistic/construction robots, it will provide the radio signal with limited range for these to operate. This will limit the robots from following the player out of the factory and allow the player to have more distinct logistic systems. Apart from that, the robots will recharge there and stock inside if they have nothing to do. Reconstruction of destroyed buildings When any building owned by player is destroyed while he has the construction robots researched, the half transparent "ghost" building appear on top of the remnants. This ghost building has limited lifetime (5 minutes) and if the needed component is available in the local logistic system, the construction robots take it and automatically reconstruct the building. Nothing new, but still: the thread for comments is available on our forum.